package com.tz.fruit.service;

import com.tz.fruit.entity.*;

import java.util.List;

/**
 * Created by CHEN on 2017/7/19.
 */

public interface IProductService {

    /**
     * 商品接口：
     * 添加商品
     */
    void save(Product p);

    /**
     * 根据Id删除商品
     */
    void delById(Long pid);

    /**
     * 更新商品
     */
    void update(Product p);

    /**
     * 分页查询商品
     */
    PageBean<Product> findByPage(String keyWord, RecState recState, Category category, String loc, boolean order, Long pageNow, Long pageSize);

    /**
     * 根据Id查询商品
     */
    Product findById(Long pid);

    /**
     * 根据编号查询商品
     */
    Product findByPNo(String pNo);

    /**
     * 根据名称查询商品
     */
    Product findByPName(String pName);

    /**
     * 类别接口：
     * 添加商品分类
     */
    void save(Category c);

    /**
     * 根据Id删除商品分类
     */
    void delByCategoryId(Long categoryId);

    /**
     * 更新商品分类
     */
    void update(Category c);

    /**
     * 多条件组合查询商品分类
     */
    List<Category> findAllCategory(String categoryNo, String categoryName);

    /**
     * 根据Id查询商品分类
     */
    Category findByCategoryId(Long categoryId);

    /**
     * 根据编号查询商品分类
     */
    Category findByCategoryNo(String categoryNo);

    /**
     * 根据名称查询商品分类
     */
    Category findByCategoryName(String categoryName);




    /**
     * 简介接口：
     * 添加商品简介
     */
    void save(Intro intro);

    /**
     * 根据Id删除商品简介
     */
    void delByIntroId(Long introId);

    /**
     * 更新商品简介
     */
    void update(Intro intro);

    /**
     * 根据商品Id查询所有商品简介
     */
    List<Intro> findIntroByPid(Long pid);

    /**
     * 根据Id查询商品简介
     */
    Intro findByIntroId(Long introId);

    /**
     * 根据名称查询商品简介
     */
    Intro findByKey(String key);




    /**
     * 评论接口：
     * 添加商品评论
     */
    void save(Comment comment);

    /**
     * 根据Id删除商品评论
     */
    void delByCommmentId(Long commmentId);

    /**
     * 更新商品评论
     */
    void update(Comment comment);

    /**
     * 根据商品Id查询所有商品评论
     */
    List<Comment> findCommentByPid(Long pid);

    /**
     * 根据Id查询商品评论
     */
    Comment findByCommmentId(Long commmentId);






    /**
     * 图片接口:
     * 添加商品图片
     */
    void save(Image image);

    /**
     * 根据Id删除商品图片
     */
    void delByImageId(Long imageId);

    /**
     * 更新商品图片
     */
    void update(Image image);

    /**
     * 根据商品Id查询所有商品图片
     */
    List<Image> findImgByPid(Long pid);

    /**
     * 根据Id查询商品图片
     */
    Image findByImageId(Long imageId);


    PageBean<Comment> findCommentByPage(Long id, Long pageNow, Long pageSize);

    Product findProductById(Long id);

    Recent saveToRecent(Recent recent, Product product);

    Long findPidByPNo(String pNo);
}
